const res = function () {
  // 随机数组
  var arr = [Math.random(), Math.random(), Math.random(), Math.random()];
  // 函数 功能
  var square = function (x) {
    return x * x;
  };
  //
  var funcs = makeClosures(arr, square);
  // funcs是一个数组 每一项都是函数 执行结果 是根据参数
  var result = true;
  //
  for (var i = 0; i < arr.length; i++) {
    console.log(funcs[i]() === square(arr[i]));
    result = result && funcs[i]() === square(arr[i]);
  }
  return result;

  function makeClosures(arr, fn) {
    // 返回的是数组
    const arrRes = [];
    for (let i = 0; i < arr.length; i++) {
      function fnRes() {
        return fn(arr[i])
      }
      arrRes.push(fnRes)
    }
    return arrRes
  }
};

console.log(res());
//
//
// function () {
//   var arr = [Math.random(), Math.random(), Math.random(), Math.random()];
//   var square = function (x) {
//     return x * x;
//   };
//   var funcs = makeClosures(arr, square);
//   var result = true;
//   for (var i = 0; i < arr.length; i++) {
//     result = result && funcs[i]() === square(arr[i]);
//   }
//   return result;
// }
